package com.sky.controller.rider;

import com.sky.dto.CourierTradeQueryDto;
import com.sky.dto.PickUpDTO;
import com.sky.pojo.CourierTradeOrder;
import com.sky.result.Result;
import com.sky.service.rider.CourierTradeOrderService;
import com.sky.vo.CourierTradeOrderVO;
import com.sky.vo.OrderDetailVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@Api(tags = "骑手运单相关接口")
@RequestMapping("/trade")
public class CourierTradeOrderController {


    @Autowired
    private CourierTradeOrderService courierTradeOrderService;

    @GetMapping("/queryPendingOrders")
    @ApiOperation("查询待接单信息")
    public Result<List<CourierTradeOrderVO>> queryPendingOrders(Integer status, Long courierId){
        return courierTradeOrderService.queryPendingOrders(status, courierId);
    }

    @GetMapping("/queryTobePickedUpTradeOrders")
    @ApiOperation("待取货查询")
    public Result<List<CourierTradeOrderVO>> queryTobePickedUpTradeOrders(Integer status,Long courierId){
        return courierTradeOrderService.queryPendingOrders(status,courierId);
    }


    @GetMapping("/toBedeliveredList")
    @ApiOperation("待送达查询")
    public Result<List<CourierTradeOrderVO>> toBedeliveredList(Integer status,Long courierId){
        return courierTradeOrderService.queryPendingOrders(status,courierId);
    }

    @GetMapping("/queryCanceldTradeOrderList")
    @ApiOperation("已取消查询")
    public Result<List<CourierTradeOrderVO>> queryCanceldTradeOrderList(Integer status,Long courierId){
        return courierTradeOrderService.queryPendingOrders(status,courierId);
    }


    @GetMapping("/queryTradeOrderByTradeNo")
    @ApiOperation("根据订单号查询运单信息")
    public Result<CourierTradeOrder> queryTradeOrderByTradeNo(String tradeNo) {
        return courierTradeOrderService.queryTradeOrderByTradeNo(tradeNo);
    }

    @ApiOperation("确认取货/确认送达")
    @PutMapping("/confirmPickUp")
    public Result confirmPickUp(@RequestBody PickUpDTO dto){
        return courierTradeOrderService.confirmOrComplete(dto.getTradeNo(),dto.getStatus());
    }

    @ApiOperation("骑手取货信息确认")
    @GetMapping("/confirmPickUpList")
    public Result<List<OrderDetailVO>> confirmPickUpList(Long tradeNo){
        return courierTradeOrderService.confirmPickUpList(tradeNo);
    }

    @ApiOperation("根据日期查询骑手订单数据")
    @GetMapping("/queryWaybillsByDate")
    public Result<List<CourierTradeOrderVO>> queryWaybillsByDate(CourierTradeQueryDto dto){
        return courierTradeOrderService.queryWaybillsByDate(dto);
    }


}
